package IC.Types;

public abstract class Type {
	
	private int internalTypeId;
    private static int globalTypesId = 1;
    private String name;
    
    protected Type(String typeName) {
        internalTypeId = globalTypesId++;
    	name = typeName;
    }

    public abstract boolean isRef();
    public abstract boolean isSub(Type ty);
    
    public int getTypeId() {
        return internalTypeId;
    }
    
    public String getTypeName() {
        return name;
    }

}
